//////////////////////////////////////////////////////////////////////////

#ifndef _CONNECTIONIMPL_H_
#include "connectionimpl.h"
#endif

//////////////////////////////////////////////////////////////////////////

#ifndef _BOOSTSERVERCONNECTIONIMPL_H_
#include "boostserverconnectionimpl.h"
#endif

#ifndef _BOOSTCLIENTCONNECTIONIMPL_H_
#include "boostclientconnectionimpl.h"
#endif

//////////////////////////////////////////////////////////////////////////

// UDP recv buffer
char ConnectionImpl::m_RecvBufferUDP[MAX_BUFFER_SIZE];
Packet ConnectionImpl::m_RecvPacketUDP;
const size_t ConnectionImpl::m_Port = 27027;
const char* ConnectionImpl::m_PortStr = "27027";

//////////////////////////////////////////////////////////////////////////

ConnectionImpl::ConnectionImpl()
{
}


//////////////////////////////////////////////////////////////////////////


ConnectionImpl::~ConnectionImpl()
{
}


//////////////////////////////////////////////////////////////////////////


ConnectionImpl* ConnectionImpl::GetBoostServerConnectionImpl()
{
    return new BoostServerConnectionImpl;
}


//////////////////////////////////////////////////////////////////////////


ConnectionImpl* ConnectionImpl::GetBoostClientConnectionImpl()
{
    return new BoostClientConnectionImpl;
}


//////////////////////////////////////////////////////////////////////////


const Packet& ConnectionImpl::GetRecvDataTCP() const
{
    return m_RecvPacketTCP;
}


//////////////////////////////////////////////////////////////////////////


const Packet& ConnectionImpl::GetRecvDataUDP() const
{
    return m_RecvPacketUDP;
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleAccept()
{
    NotifyObservers(Observer::NETWORK_ACCEPTED_NEW_CONNECTION);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleSendTCP()
{
    NotifyObservers(Observer::NETWORK_SEND_COMPLETE_TCP);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleSendUDP()
{
    NotifyObservers(Observer::NETWORK_SEND_COMPLETE_UDP);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleRecvTCP()
{
    NotifyObservers(Observer::NETWORK_RECEIVE_COMPLETE_TCP);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleRecvUDP()
{
    NotifyObservers(Observer::NETWORK_RECEIVE_COMPLETE_UDP);
}


//////////////////////////////////////////////////////////////////////////
